package config

import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gcfg"
	"github.com/gogf/gf/v2/os/gctx"
)

type Config struct {
	configClient *gcfg.Config
}

func Newconfig() *Config {
	return &Config{
		configClient: g.Cfg(),
	}
}

func (t *Config) GetBool(ctx gctx.Ctx, key string) bool {
	data, _ := t.configClient.Get(ctx, key)
	return data.Bool()
}

func (t *Config) GetString(ctx gctx.Ctx, key string) string {
	data, _ := t.configClient.Get(ctx, key)
	return data.String()
}

func (t *Config) GetStringArr(ctx gctx.Ctx, key string) []string {
	data, _ := t.configClient.Get(ctx, key)
	return data.Strings()
}

func (t *Config) GetInt(ctx gctx.Ctx, key string) int {
	data, _ := t.configClient.Get(ctx, key)
	return data.Int()
}

func (t *Config) GetInt32(ctx gctx.Ctx, key string) int32 {
	data, _ := t.configClient.Get(ctx, key)
	return data.Int32()
}
